home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 August / Macworld (1997-08).dmg / Shareware World / Info / For Developers / InstallerMaker™ 4.0 Installer / Customizing InstallerMaker / Sample Code / Headers / IMPackages256.h < prev    next >
Text File  |  1996-04-21  |  3KB  |  91 lines

  1.  
  2. /******************************************************************************
  3. **
  4. **  Project Name:    InstallerMaker 3.0 Diagnostic Code
  5. **     File Name:    IMPackages.h
  6. **
  7. **   Description:    These are interfaces for manipulating the IM 3.0 package
  8. **                    bit strings.
  9. **                     
  10. **        Packages field
  11. **        ==============
  12. **        
  13. **        The interpretation of packages for the code rsrcs is:
  14. **        
  15. **        IM 2.0: packages should be interpreted as a 16 bit field. 
  16. **            Bit 0 is the lowest bit.
  17. **        
  18. **        IM 3.0: packages should be interpreted as a 128 bit field. 
  19. **            packages[0] contains bits 0-31 where 0 is the lowest bit. 
  20. **            packages[1] contains bits 32-63 where 32 is the lowest bit.
  21. **             Similarly for packages[2] and packages[3].
  22. **        
  23. **        packages is a bit mask where bit 0 set means std pkg, bit 1
  24. **            set means pkg A, bit 2 means B, etc.  For compatibility, a
  25. **            value of zero is synonymous with all ones.
  26. **            
  27. **        The packages field typically specifies the currently selected
  28. **            pkgs unless otherwise noted.
  29. **        
  30. **
  31. **   Copyright© 1994-1995 Aladdin Systems, inc.
  32. **
  33. *******************************************************************************
  34. **                       A U T H O R   I D E N T I T Y
  35. *******************************************************************************
  36. **
  37. **    Initials    Name
  38. **    --------    -----------------------------------------------
  39. **    RMT            Robert Thorne
  40. **
  41. *******************************************************************************
  42. **                      R E V I S I O N   H I S T O R Y
  43. *******************************************************************************
  44. **
  45. **      Date        Time    Author    Description
  46. **    --------    -----    ------    ---------------------------------------------
  47. **    1/2/95                RMT        Pulled from test code for new file
  48. **
  49. ******************************************************************************/
  50.  
  51. #ifndef __DIAG_PACKAGES
  52. #define __DIAG_PACKAGES
  53.  
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57.  
  58.  
  59. short    GetPackageNumber ( StringPtr pkgStr ) ;
  60. // Valid formats are "Std" for "Standard Package", "A"..."Z", and "AA".."DW".
  61. // Pass these as Pascal strings.  This routine is case-insensitive.
  62.  
  63. char    *ConstructPkgString ( unsigned long *packages, char *store, short storeLen ) ;
  64. // Returns a comma-delimited string listing the package bits set.  Note that
  65. // this list can get rather long: an average of 3 chars per set bit means you
  66. // can require up to 360 bytes if all bits are set. storeLen lets you protect
  67. // from running over the end of the string by having the string end in a "…"
  68.  
  69.  
  70. char    *GetPkgLetters ( short pkgCode, char *smallStr ) ;
  71. // Passes back a string that represents that package number.  Currently, the
  72. // largest string this passes back is 4 bytes (for "Std"), but allocate a little
  73. // more for safety.
  74.  
  75. short    GetPackageBit ( unsigned long *packages, short bitNo ) ; // 0 or 1
  76. // Checks if bit # bitNo is set in the packages array.  This passes back
  77. // 0 if not set, 1 if set, and -1 for an illegal bitNo.
  78.  
  79. void    SetPackageBit ( unsigned long *packages, short bitNo, Boolean turnOn) ;
  80. // Turns on or turns off bit bitNo.  
  81.  
  82. Boolean ParsePackageString ( unsigned long *packages, Str255 packageStr ) ;
  83. // Parses a comma delimited string that contains package bit information.
  84.  
  85.  
  86.  
  87. #ifdef __cplusplus
  88. }
  89. #endif
  90.  
  91. #endif